/**
 * 装饰器模式：在不改变原对象基础上，增加新功能
 * 
 * 示例需求：
 * 创建一个 Shape 接口和实现了 Shape 接口的实体类。Circle、Rectangle作为被装饰对象。
 * 创建一个实现了 Shape 接口的抽象装饰类 ShapeDecorator，并把 Shape 对象作为它的实例变量。
 * 
 * 角色：
 * 抽象组件：Shape
 * 被装饰类：Circle、Rectangle
 * 抽象装饰器：ShapeDecorator
 * 具体装饰器：RedShapeDecorator
 * 
 * 示例说明：使用装饰器模式，对被装饰类增加功能扩展。
 */
public class SimpleMain {
    public static void main(String[] args) {
        //创建被装饰对象
        Shape circle = new Circle();
        Shape rect = new Rectangle();

        //创建装饰器
        Shape circleShapeDecorator  = new RedShapeDecorator(circle);
        Shape rectShapeDecorator  = new RedShapeDecorator(rect); 

        //调用
        circleShapeDecorator.draw();
        rectShapeDecorator.draw();
    }
}
